package insight.sm.pojo;

import java.util.List;

import org.codehaus.jackson.map.ObjectMapper;
import org.json.JSONArray;
import org.json.JSONObject;

public class GridData<T> {
	private List<String> tableHeader;
	private List<T> tableData;
	private JSONArray array;
	private JSONArray arrayData;
	private JSONObject jsonObject;
	private ObjectMapper mapper;
	
	

	public JSONArray getArray() {
		return array;
	}


	public void setArray(JSONArray array) {
		this.array = array;
	}


	public JSONArray getArrayData() {
		return arrayData;
	}


	public void setArrayData(JSONArray arrayData) {
		this.arrayData = arrayData;
	}


	public JSONObject getJsonObject() {
		return jsonObject;
	}


	public void setJsonObject(JSONObject jsonObject) {
		this.jsonObject = jsonObject;
	}


	public ObjectMapper getMapper() {
		return mapper;
	}


	public void setMapper(ObjectMapper mapper) {
		this.mapper = mapper;
	}


	public GridData() {
		super();
		array=new JSONArray();
		arrayData=new JSONArray();
		jsonObject=new JSONObject();
		mapper=new ObjectMapper();	
	}


	public List<String> getTableHeader() {
		return tableHeader;
	}


	public void setTableHeader(List<String> tableHeader) {
		this.tableHeader = tableHeader;
	}


	public List<T> getTableData() {
		return tableData;
	}

	public void setTableData(List<T> tableData) {
		this.tableData = tableData;
	}
	
	public JSONObject convertToJson()throws Exception{
		int i=0;
		for(String item:tableHeader){
			System.out.println("head"+ i++);	
			array.put(new JSONObject().put(item, item));
		}		
		
		i=0;
		for(T item:tableData){
			System.out.println("data"+ i++);
			arrayData.put(new JSONObject(mapper.writeValueAsString(item)));
		}
		jsonObject.put("title", array);
		jsonObject.put("data", arrayData);
		return jsonObject;
	}
	
	
}
